package _6_reflect_proxy.annotation_jdk;


import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * {@link java.lang.annotation.Annotation}
 * {@link sun.reflect.annotation.AnnotationInvocationHandler}
 * <pre>
 *   获取注解的调用栈
 *      getDeclaredAnnotations/ getAnnotations 等 开放API
 *          {@link java.lang.Class#annotationData() }
 *              {@link java.lang.Class#createAnnotationData(int) }
 *                  {@link java.lang.Class#getRawAnnotations()}  {@link java.lang.Class#getConstantPool() }
 *                  {@link sun.reflect.annotation.AnnotationParser#parseAnnotations}
 * </pre>
 */
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface AnnotationExample {
    String value();
}
